↳ PROLOG
↳ PrologToPiTRSProof
With regard to the inferred argument filtering the predicates were used in the following modes:
e2: (b,f)
t2: (b,f)
n2: (b,f)
Transforming PROLOG into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:
e_2_in_ga2(L, T) -> if_e_2_in_1_ga3(L, T, t_2_in_ga2(L, T))
t_2_in_ga2(L, T) -> if_t_2_in_1_ga3(L, T, n_2_in_ga2(L, T))
n_2_in_ga2(._22(L, T), T) -> if_n_2_in_1_ga3(L, T, z_1_in_g1(L))
z_1_in_g1(a_0) -> z_1_out_g1(a_0)
z_1_in_g1(b_0) -> z_1_out_g1(b_0)
z_1_in_g1(c_0) -> z_1_out_g1(c_0)
if_n_2_in_1_ga3(L, T, z_1_out_g1(L)) -> n_2_out_ga2(._22(L, T), T)
n_2_in_ga2(._22(lbrace_0, A), B) -> if_n_2_in_2_ga3(A, B, e_2_in_ga2(A, ._22(rbrace_0, B)))
e_2_in_ga2(L, T) -> if_e_2_in_2_ga3(L, T, t_2_in_ga2(L, ._22(plus_0, C)))
t_2_in_ga2(L, T) -> if_t_2_in_2_ga3(L, T, n_2_in_ga2(L, ._22(star_0, C)))
if_t_2_in_2_ga3(L, T, n_2_out_ga2(L, ._22(star_0, C))) -> if_t_2_in_3_ga4(L, T, C, t_2_in_ga2(C, T))
if_t_2_in_3_ga4(L, T, C, t_2_out_ga2(C, T)) -> t_2_out_ga2(L, T)
if_e_2_in_2_ga3(L, T, t_2_out_ga2(L, ._22(plus_0, C))) -> if_e_2_in_3_ga4(L, T, C, e_2_in_ga2(C, T))
if_e_2_in_3_ga4(L, T, C, e_2_out_ga2(C, T)) -> e_2_out_ga2(L, T)
if_n_2_in_2_ga3(A, B, e_2_out_ga2(A, ._22(rbrace_0, B))) -> n_2_out_ga2(._22(lbrace_0, A), B)
if_t_2_in_1_ga3(L, T, n_2_out_ga2(L, T)) -> t_2_out_ga2(L, T)
if_e_2_in_1_ga3(L, T, t_2_out_ga2(L, T)) -> e_2_out_ga2(L, T)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of PROLOG
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
e_2_in_ga2(L, T) -> if_e_2_in_1_ga3(L, T, t_2_in_ga2(L, T))
t_2_in_ga2(L, T) -> if_t_2_in_1_ga3(L, T, n_2_in_ga2(L, T))
n_2_in_ga2(._22(L, T), T) -> if_n_2_in_1_ga3(L, T, z_1_in_g1(L))
z_1_in_g1(a_0) -> z_1_out_g1(a_0)
z_1_in_g1(b_0) -> z_1_out_g1(b_0)
z_1_in_g1(c_0) -> z_1_out_g1(c_0)
if_n_2_in_1_ga3(L, T, z_1_out_g1(L)) -> n_2_out_ga2(._22(L, T), T)
n_2_in_ga2(._22(lbrace_0, A), B) -> if_n_2_in_2_ga3(A, B, e_2_in_ga2(A, ._22(rbrace_0, B)))
e_2_in_ga2(L, T) -> if_e_2_in_2_ga3(L, T, t_2_in_ga2(L, ._22(plus_0, C)))
t_2_in_ga2(L, T) -> if_t_2_in_2_ga3(L, T, n_2_in_ga2(L, ._22(star_0, C)))
if_t_2_in_2_ga3(L, T, n_2_out_ga2(L, ._22(star_0, C))) -> if_t_2_in_3_ga4(L, T, C, t_2_in_ga2(C, T))
if_t_2_in_3_ga4(L, T, C, t_2_out_ga2(C, T)) -> t_2_out_ga2(L, T)
if_e_2_in_2_ga3(L, T, t_2_out_ga2(L, ._22(plus_0, C))) -> if_e_2_in_3_ga4(L, T, C, e_2_in_ga2(C, T))
if_e_2_in_3_ga4(L, T, C, e_2_out_ga2(C, T)) -> e_2_out_ga2(L, T)
if_n_2_in_2_ga3(A, B, e_2_out_ga2(A, ._22(rbrace_0, B))) -> n_2_out_ga2(._22(lbrace_0, A), B)
if_t_2_in_1_ga3(L, T, n_2_out_ga2(L, T)) -> t_2_out_ga2(L, T)
if_e_2_in_1_ga3(L, T, t_2_out_ga2(L, T)) -> e_2_out_ga2(L, T)
E_2_IN_GA2(L, T) -> IF_E_2_IN_1_GA3(L, T, t_2_in_ga2(L, T))
E_2_IN_GA2(L, T) -> T_2_IN_GA2(L, T)
T_2_IN_GA2(L, T) -> IF_T_2_IN_1_GA3(L, T, n_2_in_ga2(L, T))
T_2_IN_GA2(L, T) -> N_2_IN_GA2(L, T)
N_2_IN_GA2(._22(L, T), T) -> IF_N_2_IN_1_GA3(L, T, z_1_in_g1(L))
N_2_IN_GA2(._22(L, T), T) -> Z_1_IN_G1(L)
N_2_IN_GA2(._22(lbrace_0, A), B) -> IF_N_2_IN_2_GA3(A, B, e_2_in_ga2(A, ._22(rbrace_0, B)))
N_2_IN_GA2(._22(lbrace_0, A), B) -> E_2_IN_GA2(A, ._22(rbrace_0, B))
E_2_IN_GA2(L, T) -> IF_E_2_IN_2_GA3(L, T, t_2_in_ga2(L, ._22(plus_0, C)))
E_2_IN_GA2(L, T) -> T_2_IN_GA2(L, ._22(plus_0, C))
T_2_IN_GA2(L, T) -> IF_T_2_IN_2_GA3(L, T, n_2_in_ga2(L, ._22(star_0, C)))
T_2_IN_GA2(L, T) -> N_2_IN_GA2(L, ._22(star_0, C))
IF_T_2_IN_2_GA3(L, T, n_2_out_ga2(L, ._22(star_0, C))) -> IF_T_2_IN_3_GA4(L, T, C, t_2_in_ga2(C, T))
IF_T_2_IN_2_GA3(L, T, n_2_out_ga2(L, ._22(star_0, C))) -> T_2_IN_GA2(C, T)
IF_E_2_IN_2_GA3(L, T, t_2_out_ga2(L, ._22(plus_0, C))) -> IF_E_2_IN_3_GA4(L, T, C, e_2_in_ga2(C, T))
IF_E_2_IN_2_GA3(L, T, t_2_out_ga2(L, ._22(plus_0, C))) -> E_2_IN_GA2(C, T)
e_2_in_ga2(L, T) -> if_e_2_in_1_ga3(L, T, t_2_in_ga2(L, T))
t_2_in_ga2(L, T) -> if_t_2_in_1_ga3(L, T, n_2_in_ga2(L, T))
n_2_in_ga2(._22(L, T), T) -> if_n_2_in_1_ga3(L, T, z_1_in_g1(L))
z_1_in_g1(a_0) -> z_1_out_g1(a_0)
z_1_in_g1(b_0) -> z_1_out_g1(b_0)
z_1_in_g1(c_0) -> z_1_out_g1(c_0)
if_n_2_in_1_ga3(L, T, z_1_out_g1(L)) -> n_2_out_ga2(._22(L, T), T)
n_2_in_ga2(._22(lbrace_0, A), B) -> if_n_2_in_2_ga3(A, B, e_2_in_ga2(A, ._22(rbrace_0, B)))
e_2_in_ga2(L, T) -> if_e_2_in_2_ga3(L, T, t_2_in_ga2(L, ._22(plus_0, C)))
t_2_in_ga2(L, T) -> if_t_2_in_2_ga3(L, T, n_2_in_ga2(L, ._22(star_0, C)))
if_t_2_in_2_ga3(L, T, n_2_out_ga2(L, ._22(star_0, C))) -> if_t_2_in_3_ga4(L, T, C, t_2_in_ga2(C, T))
if_t_2_in_3_ga4(L, T, C, t_2_out_ga2(C, T)) -> t_2_out_ga2(L, T)
if_e_2_in_2_ga3(L, T, t_2_out_ga2(L, ._22(plus_0, C))) -> if_e_2_in_3_ga4(L, T, C, e_2_in_ga2(C, T))
if_e_2_in_3_ga4(L, T, C, e_2_out_ga2(C, T)) -> e_2_out_ga2(L, T)
if_n_2_in_2_ga3(A, B, e_2_out_ga2(A, ._22(rbrace_0, B))) -> n_2_out_ga2(._22(lbrace_0, A), B)
if_t_2_in_1_ga3(L, T, n_2_out_ga2(L, T)) -> t_2_out_ga2(L, T)
if_e_2_in_1_ga3(L, T, t_2_out_ga2(L, T)) -> e_2_out_ga2(L, T)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
E_2_IN_GA2(L, T) -> IF_E_2_IN_1_GA3(L, T, t_2_in_ga2(L, T))
E_2_IN_GA2(L, T) -> T_2_IN_GA2(L, T)
T_2_IN_GA2(L, T) -> IF_T_2_IN_1_GA3(L, T, n_2_in_ga2(L, T))
T_2_IN_GA2(L, T) -> N_2_IN_GA2(L, T)
N_2_IN_GA2(._22(L, T), T) -> IF_N_2_IN_1_GA3(L, T, z_1_in_g1(L))
N_2_IN_GA2(._22(L, T), T) -> Z_1_IN_G1(L)
N_2_IN_GA2(._22(lbrace_0, A), B) -> IF_N_2_IN_2_GA3(A, B, e_2_in_ga2(A, ._22(rbrace_0, B)))
N_2_IN_GA2(._22(lbrace_0, A), B) -> E_2_IN_GA2(A, ._22(rbrace_0, B))
E_2_IN_GA2(L, T) -> IF_E_2_IN_2_GA3(L, T, t_2_in_ga2(L, ._22(plus_0, C)))
E_2_IN_GA2(L, T) -> T_2_IN_GA2(L, ._22(plus_0, C))
T_2_IN_GA2(L, T) -> IF_T_2_IN_2_GA3(L, T, n_2_in_ga2(L, ._22(star_0, C)))
T_2_IN_GA2(L, T) -> N_2_IN_GA2(L, ._22(star_0, C))
IF_T_2_IN_2_GA3(L, T, n_2_out_ga2(L, ._22(star_0, C))) -> IF_T_2_IN_3_GA4(L, T, C, t_2_in_ga2(C, T))
IF_T_2_IN_2_GA3(L, T, n_2_out_ga2(L, ._22(star_0, C))) -> T_2_IN_GA2(C, T)
IF_E_2_IN_2_GA3(L, T, t_2_out_ga2(L, ._22(plus_0, C))) -> IF_E_2_IN_3_GA4(L, T, C, e_2_in_ga2(C, T))
IF_E_2_IN_2_GA3(L, T, t_2_out_ga2(L, ._22(plus_0, C))) -> E_2_IN_GA2(C, T)
e_2_in_ga2(L, T) -> if_e_2_in_1_ga3(L, T, t_2_in_ga2(L, T))
t_2_in_ga2(L, T) -> if_t_2_in_1_ga3(L, T, n_2_in_ga2(L, T))
n_2_in_ga2(._22(L, T), T) -> if_n_2_in_1_ga3(L, T, z_1_in_g1(L))
z_1_in_g1(a_0) -> z_1_out_g1(a_0)
z_1_in_g1(b_0) -> z_1_out_g1(b_0)
z_1_in_g1(c_0) -> z_1_out_g1(c_0)
if_n_2_in_1_ga3(L, T, z_1_out_g1(L)) -> n_2_out_ga2(._22(L, T), T)
n_2_in_ga2(._22(lbrace_0, A), B) -> if_n_2_in_2_ga3(A, B, e_2_in_ga2(A, ._22(rbrace_0, B)))
e_2_in_ga2(L, T) -> if_e_2_in_2_ga3(L, T, t_2_in_ga2(L, ._22(plus_0, C)))
t_2_in_ga2(L, T) -> if_t_2_in_2_ga3(L, T, n_2_in_ga2(L, ._22(star_0, C)))
if_t_2_in_2_ga3(L, T, n_2_out_ga2(L, ._22(star_0, C))) -> if_t_2_in_3_ga4(L, T, C, t_2_in_ga2(C, T))
if_t_2_in_3_ga4(L, T, C, t_2_out_ga2(C, T)) -> t_2_out_ga2(L, T)
if_e_2_in_2_ga3(L, T, t_2_out_ga2(L, ._22(plus_0, C))) -> if_e_2_in_3_ga4(L, T, C, e_2_in_ga2(C, T))
if_e_2_in_3_ga4(L, T, C, e_2_out_ga2(C, T)) -> e_2_out_ga2(L, T)
if_n_2_in_2_ga3(A, B, e_2_out_ga2(A, ._22(rbrace_0, B))) -> n_2_out_ga2(._22(lbrace_0, A), B)
if_t_2_in_1_ga3(L, T, n_2_out_ga2(L, T)) -> t_2_out_ga2(L, T)
if_e_2_in_1_ga3(L, T, t_2_out_ga2(L, T)) -> e_2_out_ga2(L, T)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ PiDPToQDPProof
E_2_IN_GA2(L, T) -> IF_E_2_IN_2_GA3(L, T, t_2_in_ga2(L, ._22(plus_0, C)))
E_2_IN_GA2(L, T) -> T_2_IN_GA2(L, T)
N_2_IN_GA2(._22(lbrace_0, A), B) -> E_2_IN_GA2(A, ._22(rbrace_0, B))
T_2_IN_GA2(L, T) -> N_2_IN_GA2(L, ._22(star_0, C))
T_2_IN_GA2(L, T) -> IF_T_2_IN_2_GA3(L, T, n_2_in_ga2(L, ._22(star_0, C)))
IF_E_2_IN_2_GA3(L, T, t_2_out_ga2(L, ._22(plus_0, C))) -> E_2_IN_GA2(C, T)
T_2_IN_GA2(L, T) -> N_2_IN_GA2(L, T)
E_2_IN_GA2(L, T) -> T_2_IN_GA2(L, ._22(plus_0, C))
IF_T_2_IN_2_GA3(L, T, n_2_out_ga2(L, ._22(star_0, C))) -> T_2_IN_GA2(C, T)
e_2_in_ga2(L, T) -> if_e_2_in_1_ga3(L, T, t_2_in_ga2(L, T))
t_2_in_ga2(L, T) -> if_t_2_in_1_ga3(L, T, n_2_in_ga2(L, T))
n_2_in_ga2(._22(L, T), T) -> if_n_2_in_1_ga3(L, T, z_1_in_g1(L))
z_1_in_g1(a_0) -> z_1_out_g1(a_0)
z_1_in_g1(b_0) -> z_1_out_g1(b_0)
z_1_in_g1(c_0) -> z_1_out_g1(c_0)
if_n_2_in_1_ga3(L, T, z_1_out_g1(L)) -> n_2_out_ga2(._22(L, T), T)
n_2_in_ga2(._22(lbrace_0, A), B) -> if_n_2_in_2_ga3(A, B, e_2_in_ga2(A, ._22(rbrace_0, B)))
e_2_in_ga2(L, T) -> if_e_2_in_2_ga3(L, T, t_2_in_ga2(L, ._22(plus_0, C)))
t_2_in_ga2(L, T) -> if_t_2_in_2_ga3(L, T, n_2_in_ga2(L, ._22(star_0, C)))
if_t_2_in_2_ga3(L, T, n_2_out_ga2(L, ._22(star_0, C))) -> if_t_2_in_3_ga4(L, T, C, t_2_in_ga2(C, T))
if_t_2_in_3_ga4(L, T, C, t_2_out_ga2(C, T)) -> t_2_out_ga2(L, T)
if_e_2_in_2_ga3(L, T, t_2_out_ga2(L, ._22(plus_0, C))) -> if_e_2_in_3_ga4(L, T, C, e_2_in_ga2(C, T))
if_e_2_in_3_ga4(L, T, C, e_2_out_ga2(C, T)) -> e_2_out_ga2(L, T)
if_n_2_in_2_ga3(A, B, e_2_out_ga2(A, ._22(rbrace_0, B))) -> n_2_out_ga2(._22(lbrace_0, A), B)
if_t_2_in_1_ga3(L, T, n_2_out_ga2(L, T)) -> t_2_out_ga2(L, T)
if_e_2_in_1_ga3(L, T, t_2_out_ga2(L, T)) -> e_2_out_ga2(L, T)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
E_2_IN_GA1(L) -> IF_E_2_IN_2_GA1(t_2_in_ga1(L))
E_2_IN_GA1(L) -> T_2_IN_GA1(L)
N_2_IN_GA1(._22(lbrace_0, A)) -> E_2_IN_GA1(A)
T_2_IN_GA1(L) -> N_2_IN_GA1(L)
T_2_IN_GA1(L) -> IF_T_2_IN_2_GA1(n_2_in_ga1(L))
IF_E_2_IN_2_GA1(t_2_out_ga1(._22(plus_0, C))) -> E_2_IN_GA1(C)
IF_T_2_IN_2_GA1(n_2_out_ga1(._22(star_0, C))) -> T_2_IN_GA1(C)
e_2_in_ga1(L) -> if_e_2_in_1_ga1(t_2_in_ga1(L))
t_2_in_ga1(L) -> if_t_2_in_1_ga1(n_2_in_ga1(L))
n_2_in_ga1(._22(L, T)) -> if_n_2_in_1_ga2(T, z_1_in_g1(L))
z_1_in_g1(a_0) -> z_1_out_g
z_1_in_g1(b_0) -> z_1_out_g
z_1_in_g1(c_0) -> z_1_out_g
if_n_2_in_1_ga2(T, z_1_out_g) -> n_2_out_ga1(T)
n_2_in_ga1(._22(lbrace_0, A)) -> if_n_2_in_2_ga1(e_2_in_ga1(A))
e_2_in_ga1(L) -> if_e_2_in_2_ga1(t_2_in_ga1(L))
t_2_in_ga1(L) -> if_t_2_in_2_ga1(n_2_in_ga1(L))
if_t_2_in_2_ga1(n_2_out_ga1(._22(star_0, C))) -> if_t_2_in_3_ga1(t_2_in_ga1(C))
if_t_2_in_3_ga1(t_2_out_ga1(T)) -> t_2_out_ga1(T)
if_e_2_in_2_ga1(t_2_out_ga1(._22(plus_0, C))) -> if_e_2_in_3_ga1(e_2_in_ga1(C))
if_e_2_in_3_ga1(e_2_out_ga1(T)) -> e_2_out_ga1(T)
if_n_2_in_2_ga1(e_2_out_ga1(._22(rbrace_0, B))) -> n_2_out_ga1(B)
if_t_2_in_1_ga1(n_2_out_ga1(T)) -> t_2_out_ga1(T)
if_e_2_in_1_ga1(t_2_out_ga1(T)) -> e_2_out_ga1(T)
e_2_in_ga1(x0)
t_2_in_ga1(x0)
n_2_in_ga1(x0)
z_1_in_g1(x0)
if_n_2_in_1_ga2(x0, x1)
if_t_2_in_2_ga1(x0)
if_t_2_in_3_ga1(x0)
if_e_2_in_2_ga1(x0)
if_e_2_in_3_ga1(x0)
if_n_2_in_2_ga1(x0)
if_t_2_in_1_ga1(x0)
if_e_2_in_1_ga1(x0)
Order:Polynomial interpretation:
POL(a_0) = 0
POL(rbrace_0) = 0
POL(c_0) = 0
POL(n_2_out_ga1(x1)) = x1
POL(star_0) = 1
POL(e_2_in_ga1(x1)) = x1
POL(if_t_2_in_2_ga1(x1)) = x1
POL(if_e_2_in_3_ga1(x1)) = x1
POL(plus_0) = 1
POL(t_2_in_ga1(x1)) = x1
POL(if_n_2_in_1_ga2(x1, x2)) = x1
POL(._22(x1, x2)) = 1 + x2
POL(n_2_in_ga1(x1)) = x1
POL(z_1_in_g1(x1)) = 0
POL(t_2_out_ga1(x1)) = x1
POL(if_e_2_in_1_ga1(x1)) = x1
POL(if_n_2_in_2_ga1(x1)) = x1
POL(if_e_2_in_2_ga1(x1)) = x1
POL(if_t_2_in_1_ga1(x1)) = x1
POL(e_2_out_ga1(x1)) = x1
POL(if_t_2_in_3_ga1(x1)) = x1
POL(b_0) = 0
POL(z_1_out_g) = 0
POL(lbrace_0) = 1
From the DPs we obtained the following set of size-change graphs:
We oriented the following set of usable rules.
t_2_in_ga1(L) -> if_t_2_in_2_ga1(n_2_in_ga1(L))
t_2_in_ga1(L) -> if_t_2_in_1_ga1(n_2_in_ga1(L))
n_2_in_ga1(._22(L, T)) -> if_n_2_in_1_ga2(T, z_1_in_g1(L))
n_2_in_ga1(._22(lbrace_0, A)) -> if_n_2_in_2_ga1(e_2_in_ga1(A))
if_t_2_in_3_ga1(t_2_out_ga1(T)) -> t_2_out_ga1(T)
if_t_2_in_2_ga1(n_2_out_ga1(._22(star_0, C))) -> if_t_2_in_3_ga1(t_2_in_ga1(C))
if_t_2_in_1_ga1(n_2_out_ga1(T)) -> t_2_out_ga1(T)
if_n_2_in_2_ga1(e_2_out_ga1(._22(rbrace_0, B))) -> n_2_out_ga1(B)
if_n_2_in_1_ga2(T, z_1_out_g) -> n_2_out_ga1(T)
if_e_2_in_3_ga1(e_2_out_ga1(T)) -> e_2_out_ga1(T)
if_e_2_in_2_ga1(t_2_out_ga1(._22(plus_0, C))) -> if_e_2_in_3_ga1(e_2_in_ga1(C))
if_e_2_in_1_ga1(t_2_out_ga1(T)) -> e_2_out_ga1(T)
e_2_in_ga1(L) -> if_e_2_in_2_ga1(t_2_in_ga1(L))
e_2_in_ga1(L) -> if_e_2_in_1_ga1(t_2_in_ga1(L))